/*****************************************************************************/
/*                                                                           */
/*    Domino Operation System Kernel Module                                  */
/*                                                                           */
/*    Copyright (C) 2005 Laszlo Arvai                                        */
/*                                                                           */
/*    ------------------------------------------------------------------     */
/*    krnlTrimer.h - Kernel timer service                                    */
/*****************************************************************************/
#ifndef __krnlSystemTimer_h
#define __krnlSystemTimer_h

///////////////////////////////////////////////////////////////////////////////
// Includes
#include <krnlTypes.h>
#include "drvIOConfig.h"
#include "krnlMessageQueue.h"

///////////////////////////////////////////////////////////////////////////////
// Constants
#define krnlSYSTEM_TIMER_TICKS_PER_SECOND 1000 // number of tick in one second

///////////////////////////////////////////////////////////////////////////////
// Types
#ifdef drvSYSTEMTIMER_USE32BIT
typedef dosDWord dosSystemTime;
#else
typedef dosWord dosSystemTime;
#endif

///////////////////////////////////////////////////////////////////////////////
// Function prototypes
dosSystemTime krnlGetSystemTimer(void);
void krnlDelay(dosSystemTime in_delay_ms);
dosSystemTime krnlGetTimeSince(dosSystemTime in_start_time_ms);
void krnlSystemTimerIdleHandler(void);

#endif
